import taichi as ti

ti.init(arch=ti.cuda)
  
#field 全局的 N维度的 每个cell可装各类元素的场
heat_field = ti.field(dtype=ti.f32,shape=(256,256))

pixels = ti.field(dtype=ti.f32,shape=(16,8))
vf = ti.Vector.field(3,ti.f32,shape=4)

#降格为标量
zero_d_scalar = ti.field(ti.f32,shape=())
#降格为向量
zero_d_vec = ti.Vector.field(2,ti.f32,shape=())
#模拟重力场 256*256*128空间内 每个元素都是三维float32的向量
graviatinal_field = ti.Vector.field(n=3,dtype=ti.f32,shape=(256,256,128))
#张量场 64*64的平面内每个cell都是2*2矩阵
strain_tensor_field = ti.Matrix.field(n=2,m=3,dtype=ti.f32,shape=(64,64))
#定义全局变量  该变量可在太极内核访问
global_scalar = ti.field(dtype=ti.f32,shape=())

@ti.kernel
def foo():    
    pixels[1,0] = 42.0    
    v = ti.Vector([1,2,3])
    vf[0] = v
    zero_d_scalar[None] = 1.3
    zero_d_vec[None] = ti.Vector([2.5,2.6])

foo()


